package game.basic;

import game.controller.Entity;
import game.controller.Supplies;
import game.tile.Tile;
import javafx.scene.paint.Color;

public interface GameBase {

    int originalTileSize = 16;//原始的瓦片大小为16x16
    int scale = 3;//缩放级别为3
    int tileSize = originalTileSize * scale;//一个格子大小为48x48
    int maxScreenCol = 16;//最大屏幕列数为20
    int maxScreenRow = 12;//最大屏幕行数为12
    int screenWidth = tileSize * maxScreenCol;//屏幕宽度为768
    int screenHeight = tileSize * maxScreenRow;//屏幕高度为576
    int maxWorldCol = 50;//最大世界列数为50 对应X
    int maxWorldRow = 50;//最大世界行数为50 对应Y
    int maxMap = 2;//最大地图数为2

    int screenX = (screenWidth - tileSize) / 2;
    int screenY = (screenHeight - tileSize) / 2;

    int titleState = 0;//标题
    int playState = 1;//开始
    int pauseState = 2;//暂停
    int dialogueState = 3;//对话
    int characterState = 4;//查看状态信息


    int upDir = 1;
    int downDir = 0;
    int leftDir = 2;
    int rightDir = 3;

    int upAttack = -1;
    int downAttack = -2;
    int leftAttack = -3;
    int rightAttack = -4;


    int[][][] mapTileNum = new int[maxMap][maxWorldCol][maxWorldRow]; //这是一个三维数组，用来存储地图上每个瓦片的编号
    Tile[] tile = new Tile[38];//全部的瓦片

    int objArrLength = 15;
    int npcArrLength = 5;
    int monsterArrLength = 5;

    Supplies[][] obj = new Supplies[maxMap][objArrLength];
    Entity[][] npc = new Entity[maxMap][npcArrLength];
    Entity[][] monster = new Entity[maxMap][monsterArrLength];

    Color cBlack = Color.rgb(0, 0, 0, 0.9);
    Color cWhite = Color.rgb(255, 255, 255);

    Color cRed = Color.rgb(255, 0, 0);
    Color cGreen = Color.rgb(0, 255, 0);
    Color cBlue = Color.rgb(0, 0, 255);

    int ImgFps = 2;

    float[] ALPHA_VALUES = {
            0.1f, 0.1f, 0.1f, 0.1f, 0.1f, // 初始阶段，完全透明
            0.7f, 0.7f, 0.7f, 0.7f, 0.7f, // 变为不透明
            0.1f, 0.1f, 0.1f, 0.1f, 0.1f, // 再次变为透明
            0.7f, 0.7f, 0.7f, 0.7f, 0.7f, // 再次变为不透明// 可以根据需要继续添加更多值
    };

    int MAX_Dying_Counter = ALPHA_VALUES.length; // 与ALPHA_VALUES的长度相匹配
}
